TTree

Implements a binary search tree with multiple items per tree node.

T-tree Nodes are (by default) sized to fit within a 64-byte cache line. The number of items stored per node can be read from the nodeCapacity field. Each node has 0, 1, or 2 children. Each node has between 1 and nodeCapacity items, or it has nodeCapacity items and 0 or more children.

Disabled Default Constructor

A disabled default is present on this object. To use it, use one of the other constructors or a factory function.

Constructors

this
this(Allocator allocator)

Use allocator to allocate and free nodes in the tree.

Destructor

A destructor is present on this object, but not explicitly documented in the source.

Postblit

this(this)
@disable this(this)

T-Trees are not copyable due to the way they manage memory and interact with allocators.

Copying this object is disabled.

Members

Aliases

insertAnywhere
alias insertAnywhere = insert
put
alias put = insert

Inserts the given value(s) into the tree.

Functions

back
inout(T) back()
clear
void clear()

Removes all elements from the tree.

contains
bool contains(T value)
empty
bool empty()
equalRange
auto equalRange(inout T value)
front
inout(T) front()
insert
size_t insert(T value, bool overwrite = false)
size_t insert(R r, bool overwrite = false)
size_t insert(T[] values, bool overwrite = false)

Inserts the given value(s) into the tree.

length
size_t length()
lowerBound
auto lowerBound(inout T value)
opOpAssign
void opOpAssign(T value)

tree ~= item operator overload.

opSlice
auto opSlice()
remove
bool remove(T value, void delegate(T) cleanup = null)

Removes a single value from the tree, or does nothing.

upperBound
auto upperBound(inout T value)

Structs

Range
struct Range(ThisT)

Tree range

See Also

Meta